package com.hyt.it.ogt.ykcj.mapper.exam;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hyt.it.ogt.ykcj.domain.exam.ExamPostInfo;
import com.hyt.it.ogt.ykcj.domain.vo.ExamPostInfoReq;
import com.hyt.it.ogt.ykcj.domain.vo.ExamPostInfoRsp;
import com.hyt.it.ogt.ykcj.domain.vo.ExamScoreLineReq;
import com.hyt.it.ogt.ykcj.domain.vo.JgxzVo;
import com.hyt.it.ogt.ykcj.domain.vo.PostScoreInfoVo;
import com.hyt.it.ogt.ykcj.domain.vo.UnitPostVo;

/**
 * 招考职位信息Mapper接口
 * 
 * @author admin
 * @date 2021-09-09
 */
public interface ExamPostInfoMapper extends BaseMapper<ExamPostInfo> {
    /**
     * 查询招考职位信息
     *
     * @param id 招考职位信息ID
     * @return 招考职位信息
     */
    public ExamPostInfo selectExamPostInfoById(String id);

    /**
     * 查询招考职位信息列表
     *
     * @param examPostInfo 招考职位信息
     * @return 招考职位信息集合
     */
    public List<ExamPostInfo> selectExamPostInfoList(ExamPostInfo examPostInfo);

    /**
     * 查询招考职位信息列表
     *
     * @param examPostInfoReq 招考职位信息
     * @return 招考职位信息集合
     */
    List<ExamPostInfoRsp> selectExamPostInfoList2(ExamPostInfoReq examPostInfoReq);

    /**
     * 新增招考职位信息
     *
     * @param examPostInfo 招考职位信息
     * @return 结果
     */
    public int insertExamPostInfo(ExamPostInfo examPostInfo);

    /**
     * 修改招考职位信息
     *
     * @param examPostInfo 招考职位信息
     * @return 结果
     */
    public int updateExamPostInfo(ExamPostInfo examPostInfo);

    /**
     * 删除招考职位信息
     *
     * @param id 招考职位信息ID
     * @return 结果
     */
    public int deleteExamPostInfoById(String id);

    /**
     * 批量删除招考职位信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteExamPostInfoByIds(String[] ids);

    /**
     * 查找已经存在的职位信息
     * @param examPostInfo
     * @return
     */
    public List<ExamPostInfo> findExitExamPostInfo(ExamPostInfo examPostInfo);

    /**
     * 批量插入
     */
    public void batchInsertPostInfo(List<ExamPostInfo> list);

    /**
     * 查询考试职位部门名称
     * @param examScoreLineReq
     * @return
     */
    public List<UnitPostVo> selectExamPostNameList(ExamScoreLineReq examScoreLineReq);

    /**
     * 查询招考职位个数和招考人数
     * @param examScoreLineReq
     * @return
     */
    public PostScoreInfoVo selectPostNumAndRequiredNum(ExamScoreLineReq examScoreLineReq);

    public ExamPostInfo selectPostInfoByExamIdAndZwdm(@Param("examId")String examId,@Param("zwdm") String zwdm);

    public List<String> queryZwdmByExamId(String examId);
    //获取机构性质
    public List<JgxzVo> getJgxzList(String examId);

    public int queryExitExaminee(String[] ids);
}
